﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace PhanMemQuanLyThuChi
{
    public partial class frmLoaiThuChi : Form
    {
        public frmLoaiThuChi()
        {
            InitializeComponent();
        }
        connect cn = new connect();
        int thaotac;
        private void Loaddata()
        {
            gridLoai.DataSource = cn.GetData("LOAI_DS");
            cobDVT.DataSource = cn.GetData("DVT_DS");
            cobDVT.DisplayMember = "TenDVT";
            cobDVT.ValueMember = "MaDVT";
            Bat_Tat_Button(true);
            txtTenLoai.Enabled = false;

        }
        private void Bat_Tat_Button(bool val)
        {
            btnThem.Enabled = val;
            btnSua.Enabled = val;
            btnXoa.Enabled = val;
            btnLuu.Enabled = !val;
            gridLoai.Enabled = val;
        }
        private void frmLoaiThuChi_Load(object sender, EventArgs e)
        {
            Loaddata();
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            thaotac = 1;
            txtMaLoai.Text = "";
            txtTenLoai.Text = "";            
            txtTenLoai.Enabled = true;
            Bat_Tat_Button(false);
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            thaotac = 2;
            txtTenLoai.Enabled = true;
            Bat_Tat_Button(false);
        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
            if (thaotac == 1)
            {
                SqlCommand cmd = new SqlCommand("LOAI_INSERT", cn.Connection());
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("TenLoai", SqlDbType.NVarChar)).Value = txtTenLoai.Text;
                cmd.Parameters.Add(new SqlParameter("dvt", SqlDbType.Int)).Value = cobDVT.SelectedValue;
                if(cmd.ExecuteNonQuery()==1)
                {
                    Loaddata();
                }
                else
                {
                    MessageBox.Show("Thêm dữ liệu thất bại", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    Loaddata();
                }
            }
            else if(thaotac==2)
            {
                if (txtMaLoai.Text == "")
                {
                    MessageBox.Show("Chưa chọn dữ liệu để cập nhật", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    SqlCommand cmd = new SqlCommand("LOAI_UPDATE",cn.Connection());
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add(new SqlParameter("tenloai",SqlDbType.NVarChar)).Value = txtTenLoai.Text;
                    cmd.Parameters.Add(new SqlParameter("maloai",SqlDbType.Int)).Value = txtMaLoai.Text;
                    cmd.Parameters.Add(new SqlParameter("dvt", SqlDbType.Int)).Value = cobDVT.SelectedValue;

                    if (cmd.ExecuteNonQuery() == 1)
                    {
                        Loaddata();
                    }
                    else
                    {
                        MessageBox.Show("Thất Bại", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        Loaddata();
                    }
                }
            }
        }

        private void gridLoai_Click(object sender, EventArgs e)
        {
            txtMaLoai.Text = DSLoai.GetFocusedRowCellDisplayText("MaLoai");
            txtTenLoai.Text = DSLoai.GetFocusedRowCellDisplayText("TenLoai");
            cobDVT.Text = DSLoai.GetFocusedRowCellDisplayText("TenDVT");
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            if (txtMaLoai.Text == "")
            {
                MessageBox.Show("Bạn chưa chọn dữ liệu để xóa", "Thông Báo Hệ Thống", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                if (MessageBox.Show("Bạn có chắc chắn muốn xóa không\nNếu chọn Yes mọi dữ liệu liên quan sẽ bị xóa vĩnh viễn!!!", "Thông Báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
                {
                    SqlCommand cmd = new SqlCommand("LOAI_DELETE", cn.Connection());
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add(new SqlParameter("maloai", SqlDbType.Int)).Value = txtMaLoai.Text;
                    if (cmd.ExecuteNonQuery() == 1)
                    {
                        Loaddata();
                    }
                    else
                    {

                        MessageBox.Show("Xóa không thành công!", "Thông Báo Hệ Thống", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            Loaddata();
            txtMaLoai.Text = "";
            txtTenLoai.Text = "";
        }
    }
}
